;:poke56,80:clr ;:sys36864 ;.opt oo *= $c000 ; 2084 zeillen =80 strout =$ab1e vic =$d000 input =$ffcf open =$ffc0 close =$ffc3 chkin =$ffc6 get =65508 clrchn =$ffcc chkout =$ffc9 setpar =$ffba setnam =$ffbd flop =8 clall =$ffe7 print =$ffd2 key =198 return =$aad7 text =$5000 tmp =2 status =144 axout =$bdcd tmp2 =4 sollwert =60 ; sind ueber (80-60) spaces am ende der zeile, absatz machen jmp gorun namlen brk last brk trenn brk name .byte "\xa4\xa4\xa4\xa4\xa4\xa4\xa4\xa4\xa4\xa4\xa4\xa4\xa4\xa4\xa4\xa4" hello .byte "\x93\x08\x0e\x9e\x11\x1dKonverter: \x05Startexter\x9e -> \x05Textomat Plus" .byt 13 .byte "\x9e\x11 Programmiert von \x05N.Heusler \x9eV\x051.4" .byt 13 .byte "\x9e\x11 Ein NSS-Programm (c) nh-100888-arr" .byt 13 .byte "\x11\x11 Name des Textes: \x05" brk i0 .byte "i0" error .byte "\x05\x11 Diskettenfehler:" .byt 13,32,18 brk longt .byte "\x9e\x11 Langes Format ? [J/N]\x9d\x9d\x9d\x9d\x9d\x05" brk ruc .byte " " brk nopanik .byt 13 .byte "\x11\x9e Bitte warten - Text wird gelesen." .byt 13,0 save .byt 13 .byte " \x9eText wird gespeichert." .byt 13,0 aus .byte "\x9e\x11 Fertig. Alles OK, keine Fehler.\x90" .byt 13,0 okay .byte "\x11 Text eingelesen. Laenge: \x05" brk oka2 .byte "\x9e Bytes" .byt 13 .byte "\x11 \x9eBitte \x05Zieldisk\x9e einlegen !" .byt 13,0 fra2 .byt 13 .byte "\x9e \x11Trennvorschlaege uebernehmen ? [J/N]\x05\x9d\x9d\x9d\x9d\x9d" brk konf1 .byt 13 .byte "<>[]\x85\x86\x87\x88\x89\x8a\x8b\x8c" .byt $df,$a9,$a3,$b8,$23,$a5,$a4 konf2 .byt 32,187,190,182,178,165,161,166,167,169,168,170 .byt 35,223,223,175,34,181,172,171 gorun lda #hello jsr strout lda #32 sta vic+32 ldx #15 clrnam sta name,x dex bpl clrnam lda #6 sta vic+33 ldx #0 getnam jsr input cmp #13 beq ret sta name,x inx cpx #16 bcc getnam ret txa beq getnam stx namlen jsr return gogo jsr clall lda #15 tay ldx #flop jsr setpar lda #2 ldx #i0 jsr setnam jsr open jsr errchn bcs gogo lda namlen ldx #name jsr setnam ldy #0 lda #3 ldx #flop jsr setpar jsr open jsr errchn bcs gorun lda #longt jsr strout lda #0 sta key getjn jsr get tax cmp #"j" beq ja cmp #"n" bne getjn lda #0 ja pha txa ora #128 jsr print lda #ruc jsr strout jsr trennask ldx #3 jsr chkin lda #nopanik jsr strout jsr get jsr get lda #text sta tmp sty tmp+1 sta tmp2 sty tmp2+1 pla beq short zeile ldy #zeillen lda #32 sta (tmp),y ldy #0 getlong jsr xget sta (tmp),y iny cpy #zeillen bcc getlong ldy #0 fillspace lda (tmp),y cmp #32 bne next lda #160 sta (tmp),y iny cpy #zeillen bcc fillspace next ldy #zeillen-1 shorten lda (tmp),y and #127 cmp #32 bne endfund dey bpl shorten endfund iny tya beq leerzeile cpy #sollwert bcc absatz addi sec adc tmp sta tmp bcc zeile inc tmp+1 bne zeile leerzeile lda #"_" sta (tmp),y iny sta (tmp),y lda #1 bne addi absatz pha lda #"_" sta (tmp),y pla jmp addi short jsr xget ldy #0 sta (tmp),y inc tmp bne short inc tmp+1 bne short errchn ldx #15 jsr chkin jsr get cmp #"0" bne ko get0 jsr get cmp #$d bne get0 jmp clrchn ko pha lda #error jsr strout pla jsr print get1 jsr get jsr print cmp #$d bne get1 jsr waitkey jsr clrchn sec rts waitkey ldx #0 stx key wk cpx key beq wk dec key rts xget jsr get pha lda status beq null pla pla pla jmp fertig null pla rts transname ldx #15 trna lda name,x cmp #"*" bne nost st lda #"." nost cmp #"?" beq st sta name,x dex bpl trna rts trennask lda #fra2 jsr strout lda #0 sta key getnj jsr get tax cmp #"j" beq yes cmp #"n" bne getnj lda #0 yes sta trenn txa ora #128 jsr print lda #ruc jmp strout fertig jsr transname jsr clrchn lda #3 jsr close lda #"_" sta last lda #okay jsr strout lda tmp sec sbc #text jsr axout lda #oka2 jsr strout jsr waitkey neu lda #save jsr strout lda #3 jsr close lda #"T" sta name+15 lda #16 ldx #name jsr setnam ldx #flop lda #3 ldy #1 jsr setpar jsr open jsr errchn bcs neu ldx #3 jsr chkout goout ldy #0 lda (tmp2),y ldx #konf2-konf1-1 such cmp konf1,x beq found dex bpl such bmi ni found lda konf2,x ni cmp #32 bne p cmp last beq ct ldx last cpx #"_" beq ct cpx #$dc beq ct p sta last cmp #$dc bne weg ldx trenn beq ct lda #162 weg jsr print ct inc tmp2 bne pruef inc tmp2+1 pruef lda tmp2+1 cmp tmp+1 bcc goout lda tmp2 cmp tmp bcc goout jsr clrchn lda #3 jsr close jsr errchn bcc alt jmp neu alt lda #15 jsr close lda #aus jmp strout